<?php

namespace app\api\controller;

use app\api\controller\Tpmecms;
use think\Db;
/**
 * 订单📝
 * 
 */
class Order extends Tpmecms
{


    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['p'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['*'];


    /**
     * 创建订单
     * 
     * @param string $birth_date 出生日期
     * @param string $name 姓名
     * @param string $tel 手机号
     * @param string $email 邮箱
     * @param string $school 学校名称
     * @param string $sex 性别
     * @param string $in_date 入住日期
     * @param int $goods_id 商品id
     * @param int $room 房间号
     * @param string $json json
     * @param int $room_id 房间id
     * 
     * @return void
     */
    public function create_order($json)
    {
        $params = $this->request->param();
   

            // $birth_date 出生日期
            // $name 姓名
            // $tel 手机号
            // $email 邮箱
            // $school 学校名称
            // $sex 性别
            // $in_date 入住日期
            // $goods_id 商品id
            // $room_id 房间id

        
        //     `uid`  '用户id',


        //     `order`   '订单号',


        //     `price`  '价格',
        //     `pid` int(10) DEFAULT NULL COMMENT '上级id',

        //     `rz_state` ) NT '入住状态',

        //     `bank_card`   '银行卡号',
        //     `money_images` 5)  '转账截图',
        //    
        //     `out_date` datetime DEFAULT NULL COMMENT '退租日期',
        //     `commission` decimal(10,2) DEFAULT NULL COMMENT '提成金额',
        //     `need` 5)  '用户备注',

        $fields = ['birth_date','name','tel','email','price','sex','school','in_date','goods_id','room_id','room'];
        $data = $this->get_field_arr($params,$fields);
        // halt($data);
        $data['uid'] = $this->auth->id;
        $data['pid'] = $this->GetUserCommissionPid($this->auth->id);
        $data['status'] = '1';
        $res = Db::name('order')->where($data)->find();

        

        if($res){
            $this->error('已有该订单');
        }else{
            // '状态:1=待同意,2=不同意,3=待付款,4=已付款(待审核),5=确认已付款,6=付款未收到,7=已完成',
            $data['time'] = time();
            $data['json'] = $json;
            // $data[]
            $id = Db::name('order')->insertGetId($data);
            if($id){
                $Template = new \app\api\controller\Template;
                $Template->send_user_create_order_msg($id);//发送用户创建订单消息
                $this->success('提交成功');
            }
        }


     
      
    }

    /**
     * 获取订单列表
     *
     * @param integer $page 1
     * @param integer $limit 10
     * @param int $status null全部状态:1=待同意,2=不同意,3=同意待付款,4=已付款(待审核),5=确认已付款,6=付款未收到,7=已完成
     * @return void
     */
    public function get_order_list($page=1,$limit=10,$status=null)
    {
        $data['uid'] = $this->auth->id;
        if($status){
            $data['status'] = $status;
        }

        $list = Db::name('order')
                ->where($data)
                ->order('time desc')
                ->page($page,$limit)
                ->select();
        foreach($list as $key=>&$val){
            $val['goods'] = $this->GetGoodsData($val['goods_id']);
        }
        $this->success('ok',$list);
    }
    

    /**
     * 上传付款图
     * @param int $id 订单id
     * @param string $money_images 可多图
     * @param string $pay_ps 付款备注
     * @return void
     */
    public function upload_payment_images($id,$money_images='',$pay_ps=null)
    {
        $where['id'] = $id;
        $where['uid'] = $this->auth->id;
        $order = Db::name('order')
            // ->where('id',$id)
            // ->where('uid',$this->auth->id)
            ->where($where)
            ->find();
        if(!$order){
            $this->error('订单不存在');
        }
        // '状态:1=待同意,2=不同意,3=待付款,4=已付款(待审核),5=确认已付款,6=付款未收到,7=已完成',
        switch ($order['status']) {
            case '1':
                $this->error('请等待审核');
                break;
                case '2':
                    $this->error('已拒绝该订单',$order);
                    break;
                case '3':
                
                    break;
                case '4':
                    $this->error('你已上传付款图，请等待审核',$order);
                    break;    

                case '5':
                    $this->error('你已付款',$order);
                    break; 
                case '6':
                
                    break;
            default:
                $this->error('未知错误状态');
                break;
        }

        $res = Db::name('order')->where($where)->update(['money_images'=>$money_images,'status'=>'4','pay_ps'=>$pay_ps]);

        if($res){
                $Template = new \app\api\controller\Template;
                $Template->send_order_pay_msg($id);//发送订单付款消息
                $this->success('上传成功');
        }else{
                $this->error('上传失败');
        }
    }
    
    /**
     * 获取订单信息
     * 
     * @param int $id 订单id
     * @return void
     */
    public function get_order_data($id)
    {
        $data = $this->GetOrderData($id);
        if(!$data){
            $this->error('没有该订单');
        }
        if($data['uid']!=$this->auth->id){
            $this->error('非该订单');
        }

        $this->success('ok',$data);
    }

    // /**
    //  * 添加需求
    //  *
    //  * @return void
    //  */
    // public function add_need()
    // {
    //     $params = $this->request->param();
    //     $fields = ['name,tel,'];
    //     $data = $this->get_field_arr($params,$fields);
    //     $res = Db::name('need')->where($data)->find();
    //     if($res){
    //         $this->error('已有该需求');
    //     }
    // }
}
